
#ifndef MESSAGES_H
#define MESSAGES_H

#define STATUS_OK 0
#define STATUS_TIMEOUT 1
#define STATUS_EXISTS 2
#define STATUS_NOT_EXISTS 3
#define STATUS_ERR 5

/*
 * Wiadomość wysyłana przez serwer do klienta
 */
typedef struct{
    int status;
    int processId;
}ResponseMsg;

#define REQ_OPEN 1
#define REQ_LOCK 2
#define REQ_TRYLOCK 3
#define REQ_UNLOCK 4
#define REQ_CLOSE 5
#define REQ_ADD_RES 6
#define REQ_DEL_RES 7


/*
 * Wiadomość wysyłana przez klienta do serwera
 */
typedef struct{
    int type;
    int processId;
    int resourceId;
    int lockType;
    long timeout;
    const char* fifoName;
} RequestMsg;

#ifdef __cplusplus
extern "C" {
#endif
    /*
     * Funkcje służące do czytania i pisania wiadomości
     */
    int readResponse(int fd, ResponseMsg* msg);
    int writeResonse(int fd, ResponseMsg* msg);
    int readRequest(int fd, RequestMsg* msg);
    int writeRequest(int fd, RequestMsg* msg);

#ifdef __cplusplus
}
#endif

#endif
